<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  
  <link rel="shortcut icon" href="../../img/favicon.ico">
  <title>图像预处理 - Keras 中文文档</title>
  <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>

  <link rel="stylesheet" href="../../css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../../css/theme_extra.css" type="text/css" />
  <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">
  
  <script>
    // Current page data
    var mkdocs_page_name = "\u56fe\u50cf\u9884\u5904\u7406";
    var mkdocs_page_input_path = "preprocessing/image.md";
    var mkdocs_page_url = "/zh/preprocessing/image/";
  </script>
  
  <script src="../../js/jquery-2.1.1.min.js" defer></script>
  <script src="../../js/modernizr-2.8.3.min.js" defer></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
  <script>hljs.initHighlightingOnLoad();</script> 
  
  <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-61785484-1', 'keras.io');
      ga('send', 'pageview');
  </script>
  
</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
      <div class="wy-side-nav-search">
        <a href="../.." class="icon icon-home"> Keras 中文文档</a>
        <div role="search">
  <form id ="rtd-search-form" class="wy-form" action="../../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" title="Type search term here" />
  </form>
</div>
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
	<ul class="current">
	  
          
            <li class="toctree-l1">
		
    <a class="" href="../..">主页</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../why-use-keras/">为什么选择 Keras?</a>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">快速开始</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../getting-started/sequential-model-guide/">Sequential 顺序模型指引</a>
                </li>
                <li class="">
                    
    <a class="" href="../../getting-started/functional-api-guide/">函数式 API 指引</a>
                </li>
                <li class="">
                    
    <a class="" href="../../getting-started/faq/">FAQ 常见问题解答</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">模型</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../models/about-keras-models/">关于 Keras 模型</a>
                </li>
                <li class="">
                    
    <a class="" href="../../models/sequential/">Sequential 顺序模型 API</a>
                </li>
                <li class="">
                    
    <a class="" href="../../models/model/">函数式 API</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">Layers</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../layers/about-keras-layers/">关于 Keras 网络层</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/core/">核心网络层</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/convolutional/">卷积层 Convolutional</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/pooling/">池化层 Pooling</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/local/">局部连接层 Locally-connected</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/recurrent/">循环层 Recurrent</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/embeddings/">嵌入层 Embedding</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/merge/">融合层 Merge</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/advanced-activations/">高级激活层 Advanced Activations</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/normalization/">标准化层 Normalization</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/noise/">噪声层 Noise</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/wrappers/">层封装器 wrappers</a>
                </li>
                <li class="">
                    
    <a class="" href="../../layers/writing-your-own-keras-layers/">编写你自己的层</a>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">数据预处理</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../sequence/">序列预处理</a>
                </li>
                <li class="">
                    
    <a class="" href="../text/">文本预处理</a>
                </li>
                <li class=" current">
                    
    <a class="current" href="./">图像预处理</a>
    <ul class="subnav">
            
    <li class="toctree-l3"><a href="#_1">图像预处理</a></li>
    
        <ul>
        
            <li><a class="toctree-l4" href="#imagedatagenerator">ImageDataGenerator 类</a></li>
        
        </ul>
    

    </ul>
                </li>
    </ul>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../losses/">损失函数 Losses</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../metrics/">评估标准 Metrics</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../optimizers/">优化器 Optimizers</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../activations/">激活函数 Activations</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../callbacks/">回调函数 Callbacks</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../datasets/">常用数据集 Datasets</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../applications/">应用 Applications</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../backend/">后端 Backend</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../initializers/">初始化 Initializers</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../regularizers/">正则化 Regularizers</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../constraints/">约束 Constraints</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../visualization/">可视化 Visualization</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../scikit-learn-api/">Scikit-learn API</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../utils/">工具</a>
	    </li>
          
            <li class="toctree-l1">
		
    <a class="" href="../../contributing/">贡献</a>
	    </li>
          
            <li class="toctree-l1">
		
    <span class="caption-text">经典样例</span>
    <ul class="subnav">
                <li class="">
                    
    <a class="" href="../../examples/addition_rnn/">Addition RNN</a>
                </li>
                <li class="">
                    
    <a class="" href="../../examples/babi_rnn/">Baby RNN</a>
                </li>
                <li class="">
                    
    <a class="" href="../../examples/babi_memnn/">Baby MemNN</a>
                </li>
                <li class="">
                    
    <a class="" href="../../examples/cifar10_cnn/">CIFAR-10 CNN</a>
                </li>
                <li class="">
                    
    <a class="" href="../../examples/cifar10_cnn_capsule/">CIFAR-10 CNN-Capsule</a>
                </li>
                <li class="">
                    
    <a class="" href="../../examples/cifar10_cnn_tfaugment2d/">CIFAR-10 CNN with augmentation (TF)</a>
                </li>
                <li class="">
                    
    <a class="" href="../../examples/cifar10_resnet/">CIFAR-10 ResNet</a>
                </li>
                <li class="">
                    
    <a class="" href="../../examples/conv_filter_visualization/">Convolution filter visualization</a>
                </li>
                <li class="">
                    
    <a class="" href="../../examples/image_ocr/">Image OCR</a>
                </li>
                <li class="">
                    
    <a class="" href="../../examples/imdb_bidirectional_lstm/">Bidirectional LSTM</a>
                </li>
    </ul>
	    </li>
          
        </ul>
      </div>
      &nbsp;
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="../..">Keras 中文文档</a>
      </nav>

      
      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="../..">Docs</a> &raquo;</li>
    
      
        
          <li>数据预处理 &raquo;</li>
        
      
    
    <li>图像预处理</li>
    <li class="wy-breadcrumbs-aside">
      
        <a href="https://github.com/keras-team/keras-docs-zh/edit/master/docs/preprocessing/image.md"
          class="icon icon-github"> Edit on GitHub</a>
      
    </li>
  </ul>
  <hr/>
</div>
          <div role="main">
            <div class="section">
              
                <h1 id="_1">图像预处理</h1>
<p><span style="float:right;"><a href="https://github.com/keras-team/keras/blob/master/keras/preprocessing/image.py#L232">[source]</a></span></p>
<h2 id="imagedatagenerator">ImageDataGenerator 类</h2>
<pre><code class="python">keras.preprocessing.image.ImageDataGenerator(featurewise_center=False,  
                                             samplewise_center=False, 
                                             featurewise_std_normalization=False, 
                                             samplewise_std_normalization=False, 
                                             zca_whitening=False, 
                                             zca_epsilon=1e-06, 
                                             rotation_range=0, 
                                             width_shift_range=0.0, 
                                             height_shift_range=0.0, 
                                             brightness_range=None, 
                                             shear_range=0.0, 
                                             zoom_range=0.0, 
                                             channel_shift_range=0.0, 
                                             fill_mode='nearest', 
                                             cval=0.0, 
                                             horizontal_flip=False, 
                                             vertical_flip=False, 
                                             rescale=None, 
                                             preprocessing_function=None, 
                                             data_format=None, 
                                             validation_split=0.0, 
                                             dtype=None)
</code></pre>

<p>通过实时数据增强生成张量图像数据批次。数据将不断循环（按批次）。</p>
<p><strong>参数</strong></p>
<ul>
<li><strong>featurewise_center</strong>: 布尔值。将输入数据的均值设置为 0，逐特征进行。</li>
<li><strong>samplewise_center</strong>: 布尔值。将每个样本的均值设置为 0。</li>
<li><strong>featurewise_std_normalization</strong>: Boolean. 布尔值。将输入除以数据标准差，逐特征进行。</li>
<li><strong>samplewise_std_normalization</strong>: 布尔值。将每个输入除以其标准差。</li>
<li><strong>zca_epsilon</strong>: ZCA 白化的 epsilon 值，默认为 1e-6。</li>
<li><strong>zca_whitening</strong>: 布尔值。是否应用 ZCA 白化。</li>
<li><strong>rotation_range</strong>: 整数。随机旋转的度数范围。</li>
<li><strong>width_shift_range</strong>: 浮点数、一维数组或整数<ul>
<li>float: 如果 &lt;1，则是除以总宽度的值，或者如果 &gt;=1，则为像素值。</li>
<li>1-D 数组: 数组中的随机元素。</li>
<li>int: 来自间隔 <code>(-width_shift_range, +width_shift_range)</code> 之间的整数个像素。</li>
<li><code>width_shift_range=2</code> 时，可能值是整数 <code>[-1, 0, +1]</code>，与 <code>width_shift_range=[-1, 0, +1]</code> 相同；而 <code>width_shift_range=1.0</code> 时，可能值是 <code>[-1.0, +1.0)</code> 之间的浮点数。</li>
</ul>
</li>
<li><strong>height_shift_range</strong>: 浮点数、一维数组或整数<ul>
<li>float: 如果 &lt;1，则是除以总宽度的值，或者如果 &gt;=1，则为像素值。</li>
<li>1-D array-like: 数组中的随机元素。</li>
<li>int: 来自间隔 <code>(-height_shift_range, +height_shift_range)</code> 之间的整数个像素。</li>
<li><code>height_shift_range=2</code> 时，可能值是整数 <code>[-1, 0, +1]</code>，与 <code>height_shift_range=[-1, 0, +1]</code> 相同；而 <code>height_shift_range=1.0</code> 时，可能值是 <code>[-1.0, +1.0)</code> 之间的浮点数。</li>
</ul>
</li>
<li><strong>shear_range</strong>: 浮点数。剪切强度（以弧度逆时针方向剪切角度）。</li>
<li><strong>zoom_range</strong>: 浮点数 或 <code>[lower, upper]</code>。随机缩放范围。如果是浮点数，<code>[lower, upper] = [1-zoom_range, 1+zoom_range]</code>。</li>
<li><strong>channel_shift_range</strong>: 浮点数。随机通道转换的范围。</li>
<li><strong>fill_mode</strong>: {"constant", "nearest", "reflect" or "wrap"} 之一。默认为 'nearest'。输入边界以外的点根据给定的模式填充：<ul>
<li>'constant': kkkkkkkk|abcd|kkkkkkkk (cval=k)</li>
<li>'nearest': aaaaaaaa|abcd|dddddddd</li>
<li>'reflect': abcddcba|abcd|dcbaabcd</li>
<li>'wrap': abcdabcd|abcd|abcdabcd</li>
</ul>
</li>
<li><strong>cval</strong>: 浮点数或整数。用于边界之外的点的值，当 <code>fill_mode = "constant"</code> 时。</li>
<li><strong>horizontal_flip</strong>: 布尔值。随机水平翻转。</li>
<li><strong>vertical_flip</strong>: 布尔值。随机垂直翻转。</li>
<li><strong>rescale</strong>: 重缩放因子。默认为 None。如果是 None 或 0，不进行缩放，否则将数据乘以所提供的值（在应用任何其他转换之前）。</li>
<li><strong>preprocessing_function</strong>: 应用于每个输入的函数。这个函数会在任何其他改变之前运行。这个函数需要一个参数：一张图像（秩为 3 的 Numpy 张量），并且应该输出一个同尺寸的 Numpy 张量。</li>
<li><strong>data_format</strong>: 图像数据格式，{"channels_first", "channels_last"} 之一。"channels_last" 模式表示图像输入尺寸应该为 <code>(samples, height, width, channels)</code>，"channels_first" 模式表示输入尺寸应该为 <code>(samples, channels, height, width)</code>。默认为 在 Keras 配置文件 <code>~/.keras/keras.json</code> 中的 <code>image_data_format</code> 值。如果你从未设置它，那它就是 "channels_last"。</li>
<li><strong>validation_split</strong>: 浮点数。Float. 保留用于验证的图像的比例（严格在0和1之间）。</li>
<li><strong>dtype</strong>: 生成数组使用的数据类型。</li>
</ul>
<p><strong>例子</strong></p>
<p>使用 <code>.flow(x, y)</code> 的例子：</p>
<pre><code class="python">(x_train, y_train), (x_test, y_test) = cifar10.load_data()
y_train = np_utils.to_categorical(y_train, num_classes)
y_test = np_utils.to_categorical(y_test, num_classes)

datagen = ImageDataGenerator(
    featurewise_center=True,
    featurewise_std_normalization=True,
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    horizontal_flip=True)

# 计算特征归一化所需的数量
# （如果应用 ZCA 白化，将计算标准差，均值，主成分）
datagen.fit(x_train)

# 使用实时数据增益的批数据对模型进行拟合：
model.fit_generator(datagen.flow(x_train, y_train, batch_size=32),
                    steps_per_epoch=len(x_train) / 32, epochs=epochs)

# 这里有一个更 「手动」的例子
for e in range(epochs):
    print('Epoch', e)
    batches = 0
    for x_batch, y_batch in datagen.flow(x_train, y_train, batch_size=32):
        model.fit(x_batch, y_batch)
        batches += 1
        if batches &gt;= len(x_train) / 32:
            # 我们需要手动打破循环，
            # 因为生成器会无限循环
            break
</code></pre>

<p>使用 <code>.flow_from_directory(directory)</code> 的例子：</p>
<pre><code class="python">train_datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
        'data/train',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
        'data/validation',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')

model.fit_generator(
        train_generator,
        steps_per_epoch=2000,
        epochs=50,
        validation_data=validation_generator,
        validation_steps=800)
</code></pre>

<p>同时转换图像和蒙版 (mask) 的例子。</p>
<pre><code class="python"># 创建两个相同参数的实例
data_gen_args = dict(featurewise_center=True,
                     featurewise_std_normalization=True,
                     rotation_range=90,
                     width_shift_range=0.1,
                     height_shift_range=0.1,
                     zoom_range=0.2)
image_datagen = ImageDataGenerator(**data_gen_args)
mask_datagen = ImageDataGenerator(**data_gen_args)

# 为 fit 和 flow 函数提供相同的种子和关键字参数
seed = 1
image_datagen.fit(images, augment=True, seed=seed)
mask_datagen.fit(masks, augment=True, seed=seed)

image_generator = image_datagen.flow_from_directory(
    'data/images',
    class_mode=None,
    seed=seed)

mask_generator = mask_datagen.flow_from_directory(
    'data/masks',
    class_mode=None,
    seed=seed)

# 将生成器组合成一个产生图像和蒙版（mask）的生成器
train_generator = zip(image_generator, mask_generator)

model.fit_generator(
    train_generator,
    steps_per_epoch=2000,
    epochs=50)
</code></pre>

<hr />
<h3 id="imagedatagenerator_1">ImageDataGenerator 类方法</h3>
<h3 id="apply_transform">apply_transform</h3>
<pre><code class="python">apply_transform(x, transform_parameters)
</code></pre>

<p>根据给定的参数将变换应用于图像。</p>
<p><strong>参数</strong></p>
<ul>
<li><strong>x</strong>: 3D 张量，单张图像。</li>
<li><strong>transform_parameters</strong>: 字符串 - 参数 对表示的字典，用于描述转换。目前，使用字典中的以下参数：<ul>
<li>'theta': 浮点数。旋转角度（度）。</li>
<li>'tx': 浮点数。在 x 方向上移动。</li>
<li>'ty': 浮点数。在 y 方向上移动。</li>
<li>shear': 浮点数。剪切角度（度）。</li>
<li>'zx': 浮点数。放大 x 方向。</li>
<li>'zy': 浮点数。放大 y 方向。</li>
<li>'flip_horizontal': 布尔 值。水平翻转。</li>
<li>'flip_vertical': 布尔值。垂直翻转。</li>
<li>'channel_shift_intencity': 浮点数。频道转换强度。</li>
<li>'brightness': 浮点数。亮度转换强度。</li>
</ul>
</li>
</ul>
<p><strong>返回</strong></p>
<p>输入的转换后版本（相同尺寸）。</p>
<hr />
<h3 id="fit">fit</h3>
<pre><code class="python">fit(x, augment=False, rounds=1, seed=None)
</code></pre>

<p>将数据生成器用于某些示例数据。</p>
<p>它基于一组样本数据，计算与数据转换相关的内部数据统计。</p>
<p>当且仅当 <code>featurewise_center</code> 或 <code>featurewise_std_normalization</code> 或 <code>zca_whitening</code> 设置为 True 时才需要。</p>
<p><strong>参数</strong></p>
<ul>
<li><strong>x</strong>: 样本数据。秩应该为 4。对于灰度数据，通道轴的值应该为 1；对于 RGB 数据，值应该为 3。</li>
<li><strong>augment</strong>: 布尔值（默认为 False）。是否使用随机样本扩张。</li>
<li><strong>rounds</strong>: 整数（默认为 1）。如果数据数据增强（augment=True），表明在数据上进行多少次增强。</li>
<li><strong>seed</strong>: 整数（默认 None）。随机种子。</li>
</ul>
<hr />
<h3 id="flow">flow</h3>
<pre><code class="python">flow(x, y=None, batch_size=32, shuffle=True, sample_weight=None, seed=None, save_to_dir=None, save_prefix='', save_format='png', subset=None)
</code></pre>

<p>采集数据和标签数组，生成批量增强数据。</p>
<p><strong>参数</strong></p>
<ul>
<li><strong>x</strong>: 输入数据。秩为 4 的 Numpy 矩阵或元组。如果是元组，第一个元素应该包含图像，第二个元素是另一个 Numpy 数组或一列 Numpy 数组，它们不经过任何修改就传递给输出。可用于将模型杂项数据与图像一起输入。对于灰度数据，图像数组的通道轴的值应该为 1，而对于 RGB 数据，其值应该为 3。</li>
<li><strong>y</strong>: 标签。</li>
<li><strong>batch_size</strong>: 整数 (默认为 32)。</li>
<li><strong>shuffle</strong>: 布尔值 (默认为 True)。</li>
<li><strong>sample_weight</strong>: 样本权重。</li>
<li><strong>seed</strong>: 整数（默认为 None）。</li>
<li><strong>save_to_dir</strong>: None 或 字符串（默认为 None）。这使您可以选择指定要保存的正在生成的增强图片的目录（用于可视化您正在执行的操作）。</li>
<li><strong>save_prefix</strong>: 字符串（默认 <code>''</code>）。保存图片的文件名前缀（仅当 <code>save_to_dir</code> 设置时可用）。</li>
<li><strong>save_format</strong>: "png", "jpeg" 之一（仅当 <code>save_to_dir</code> 设置时可用）。默认："png"。</li>
<li><strong>subset</strong>: 数据子集 ("training" 或 "validation")，如果 在 <code>ImageDataGenerator</code> 中设置了 <code>validation_split</code>。</li>
</ul>
<p><strong>返回</strong></p>
<p>一个生成元组 <code>(x, y)</code> 的 <code>Iterator</code>，其中 <code>x</code> 是图像数据的 Numpy 数组（在单张图像输入时），或 Numpy 数组列表（在额外多个输入时），<code>y</code> 是对应的标签的 Numpy 数组。如果 'sample_weight' 不是 None，生成的元组形式为 <code>(x, y, sample_weight)</code>。如果 <code>y</code> 是 None, 只有 Numpy 数组 <code>x</code> 被返回。</p>
<hr />
<h3 id="flow_from_dataframe">flow_from_dataframe</h3>
<pre><code class="python">flow_from_dataframe(dataframe, directory, x_col='filename', y_col='class', has_ext=True, target_size=(256, 256), color_mode='rgb', classes=None, class_mode='categorical', batch_size=32, shuffle=True, seed=None, save_to_dir=None, save_prefix='', save_format='png', subset=None, interpolation='nearest')
</code></pre>

<p>输入 dataframe 和目录的路径，并生成批量的增强/标准化的数据。</p>
<p>这里有一个简单的教程： <a href="http://bit.ly/keras_flow_from_dataframe">http://bit.ly/keras_flow_from_dataframe</a></p>
<p><strong>参数</strong></p>
<ul>
<li><strong>dataframe</strong>: Pandas dataframe，一列为图像的文件名，另一列为图像的类别，
或者是可以作为原始目标数据多个列。</li>
<li><strong>directory</strong>: 字符串，目标目录的路径，其中包含在 dataframe 中映射的所有图像。</li>
<li><strong>x_col</strong>: 字符串，dataframe 中包含目标图像文件夹的目录的列。</li>
<li><strong>y_col</strong>: 字符串或字符串列表，dataframe 中将作为目标数据的列。</li>
<li><strong>has_ext</strong>: 布尔值，如果 dataframe[x_col] 中的文件名具有扩展名则为 True，否则为 False。</li>
<li><strong>target_size</strong>: 整数元组 <code>(height, width)</code>，默认为 <code>(256, 256)</code>。
                 所有找到的图都会调整到这个维度。</li>
<li><strong>color_mode</strong>: "grayscale", "rbg" 之一。默认："rgb"。
                图像是否转换为 1 个或 3 个颜色通道。</li>
<li><strong>classes</strong>: 可选的类别列表
    (例如， <code>['dogs', 'cats']</code>)。默认：None。
     如未提供，类比列表将自动从 y_col 中推理出来，y_col 将会被映射为类别索引）。
     包含从类名到类索引的映射的字典可以通过属性 <code>class_indices</code> 获得。</li>
<li><strong>class_mode</strong>: "categorical", "binary", "sparse", "input", "other" or None 之一。
     默认："categorical"。决定返回标签数组的类型：<ul>
<li><code>"categorical"</code> 将是 2D one-hot 编码标签，</li>
<li><code>"binary"</code> 将是 1D 二进制标签，</li>
<li><code>"sparse"</code> 将是 1D 整数标签，</li>
<li><code>"input"</code> 将是与输入图像相同的图像（主要用于与自动编码器一起使用），</li>
<li><code>"other"</code> 将是 y_col 数据的 numpy 数组，</li>
<li>None, 不返回任何标签（生成器只会产生批量的图像数据，这对使用 <code>model.predict_generator()</code>, <code>model.evaluate_generator()</code> 等很有用）。</li>
</ul>
</li>
<li><strong>batch_size</strong>: 批量数据的尺寸（默认：32）。</li>
<li><strong>shuffle</strong>: 是否混洗数据（默认：True）</li>
<li><strong>seed</strong>: 可选的混洗和转换的随即种子。</li>
<li><strong>save_to_dir</strong>: None 或 str (默认: None).
                 这允许你可选地指定要保存正在生成的增强图片的目录（用于可视化您正在执行的操作）。</li>
<li><strong>save_prefix</strong>: 字符串。保存图片的文件名前缀（仅当 <code>save_to_dir</code> 设置时可用）。</li>
<li><strong>save_format</strong>: "png", "jpeg" 之一（仅当 <code>save_to_dir</code> 设置时可用）。默认："png"。</li>
<li><strong>follow_links</strong>: 是否跟随类子目录中的符号链接（默认：False）。</li>
<li><strong>subset</strong>: 数据子集 (<code>"training"</code> 或 <code>"validation"</code>)，如果在 <code>ImageDataGenerator</code> 中设置了 <code>validation_split</code>。</li>
<li><strong>interpolation</strong>: 在目标大小与加载图像的大小不同时，用于重新采样图像的插值方法。
     支持的方法有 <code>"nearest"</code>, <code>"bilinear"</code>, and <code>"bicubic"</code>。
     如果安装了 1.1.3 以上版本的 PIL 的话，同样支持 <code>"lanczos"</code>。
     如果安装了 3.4.0 以上版本的 PIL 的话，同样支持 <code>"box"</code> 和 <code>"hamming"</code>。
     默认情况下，使用 <code>"nearest"</code>。</li>
</ul>
<p><strong>Returns</strong></p>
<p>一个生成 <code>(x, y)</code> 元组的 DataFrameIterator，
其中 <code>x</code> 是一个包含一批尺寸为 <code>(batch_size, *target_size, channels)</code> 
的图像样本的 numpy 数组，<code>y</code> 是对应的标签的 numpy 数组。</p>
<hr />
<h3 id="flow_from_directory">flow_from_directory</h3>
<pre><code class="python">flow_from_directory(directory, target_size=(256, 256), color_mode='rgb', classes=None, class_mode='categorical', batch_size=32, shuffle=True, seed=None, save_to_dir=None, save_prefix='', save_format='png', follow_links=False, subset=None, interpolation='nearest')
</code></pre>

<p><strong>参数</strong></p>
<ul>
<li><strong>directory</strong>: 目标目录的路径。每个类应该包含一个子目录。任何在子目录树下的 PNG, JPG, BMP, PPM 或 TIF 图像，都将被包含在生成器中。更多细节，详见 <a href="https://gist.github.com/fchollet/%20%20%20%20%20%20%20%200830affa1f7f19fd47b06d4cf89ed44d">此脚本</a>。</li>
<li><strong>target_size</strong>: 整数元组 <code>(height, width)</code>，默认：<code>(256, 256)</code>。所有的图像将被调整到的尺寸。</li>
<li><strong>color_mode</strong>: "grayscale", "rbg" 之一。默认："rgb"。图像是否被转换成 1 或 3 个颜色通道。</li>
<li><strong>classes</strong>: 可选的类的子目录列表（例如 <code>['dogs', 'cats']</code>）。默认：None。如果未提供，类的列表将自动从 <code>directory</code> 下的 子目录名称/结构 中推断出来，其中每个子目录都将被作为不同的类（类名将按字典序映射到标签的索引）。包含从类名到类索引的映射的字典可以通过 <code>class_indices</code> 属性获得。</li>
<li><strong>class_mode</strong>:  "categorical", "binary", "sparse", "input" 或 None 之一。默认："categorical"。决定返回的标签数组的类型：<ul>
<li>"categorical" 将是 2D one-hot 编码标签，</li>
<li>"binary" 将是 1D 二进制标签，"sparse" 将是 1D 整数标签，</li>
<li>"input" 将是与输入图像相同的图像（主要用于自动编码器）。</li>
<li>如果为 None，不返回标签（生成器将只产生批量的图像数据，对于 <code>model.predict_generator()</code>, <code>model.evaluate_generator()</code> 等很有用）。请注意，如果 <code>class_mode</code> 为 None，那么数据仍然需要驻留在 <code>directory</code> 的子目录中才能正常工作。</li>
</ul>
</li>
<li><strong>batch_size</strong>: 一批数据的大小（默认 32）。</li>
<li><strong>shuffle</strong>: 是否混洗数据（默认 True）。</li>
<li><strong>seed</strong>: 可选随机种子，用于混洗和转换。</li>
<li><strong>save_to_dir</strong>: None 或 字符串（默认 None）。这使你可以最佳地指定正在生成的增强图片要保存的目录（用于可视化你在做什么）。</li>
<li><strong>save_prefix</strong>: 字符串。 保存图片的文件名前缀（仅当 <code>save_to_dir</code> 设置时可用）。</li>
<li><strong>save_format</strong>: "png", "jpeg" 之一（仅当 <code>save_to_dir</code> 设置时可用）。默认："png"。</li>
<li><strong>follow_links</strong>: 是否跟踪类子目录中的符号链接（默认为 False）。</li>
<li><strong>subset</strong>: 数据子集 ("training" 或 "validation")，如果 在 <code>ImageDataGenerator</code> 中设置了 <code>validation_split</code>。</li>
<li><strong>interpolation</strong>: 在目标大小与加载图像的大小不同时，用于重新采样图像的插值方法。
     支持的方法有 <code>"nearest"</code>, <code>"bilinear"</code>, and <code>"bicubic"</code>。
     如果安装了 1.1.3 以上版本的 PIL 的话，同样支持 <code>"lanczos"</code>。
     如果安装了 3.4.0 以上版本的 PIL 的话，同样支持 <code>"box"</code> 和 <code>"hamming"</code>。
     默认情况下，使用 <code>"nearest"</code>。</li>
</ul>
<p><strong>返回</strong></p>
<p>一个生成 <code>(x, y)</code> 元组的 <code>DirectoryIterator</code>，其中 <code>x</code> 是一个包含一批尺寸为 <code>(batch_size, *target_size, channels)</code>的图像的 Numpy 数组，<code>y</code> 是对应标签的 Numpy 数组。</p>
<hr />
<h3 id="get_random_transform">get_random_transform</h3>
<pre><code class="python">get_random_transform(img_shape, seed=None)
</code></pre>

<p>为转换生成随机参数。</p>
<p><strong>参数</strong></p>
<ul>
<li><strong>seed</strong>: 随机种子</li>
<li><strong>img_shape</strong>: 整数元组。被转换的图像的尺寸。</li>
</ul>
<p><strong>返回</strong></p>
<p>包含随机选择的描述变换的参数的字典。</p>
<hr />
<h3 id="random_transform">random_transform</h3>
<pre><code class="python">random_transform(x, seed=None)
</code></pre>

<p>将随机变换应用于图像。</p>
<p><strong>参数</strong></p>
<ul>
<li><strong>x</strong>: 3D 张量，单张图像。</li>
<li><strong>seed</strong>: 随机种子。</li>
</ul>
<p><strong>返回</strong></p>
<p>输入的随机转换版本（相同形状）。</p>
<hr />
<h4 id="standardize">standardize</h4>
<pre><code class="python">standardize(x)
</code></pre>

<p>将标准化配置应用于一批输入。</p>
<p><strong>参数</strong></p>
<ul>
<li><strong>x</strong>: 需要标准化的一批输入。</li>
</ul>
<p><strong>返回</strong></p>
<p>标准化后的输入。</p>
              
            </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="../../losses/" class="btn btn-neutral float-right" title="损失函数 Losses">Next <span class="icon icon-circle-arrow-right"></span></a>
      
      
        <a href="../text/" class="btn btn-neutral" title="文本预处理"><span class="icon icon-circle-arrow-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <!-- Copyright etc -->
    
  </div>

  Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
      
        </div>
      </div>

    </section>

  </div>

  <div class="rst-versions" role="note" style="cursor: pointer">
    <span class="rst-current-version" data-toggle="rst-current-version">
      
          <a href="https://github.com/keras-team/keras-docs-zh/" class="fa fa-github" style="float: left; color: #fcfcfc"> GitHub</a>
      
      
        <span><a href="../text/" style="color: #fcfcfc;">&laquo; Previous</a></span>
      
      
        <span style="margin-left: 15px"><a href="../../losses/" style="color: #fcfcfc">Next &raquo;</a></span>
      
    </span>
</div>
    <script>var base_url = '../..';</script>
    <script src="../../js/theme.js" defer></script>
      <script src="../../search/main.js" defer></script>

</body>
</html>
